#include <linux/init.h>
#include <linux/module.h>

static int irq;
static char* cPtr;
static int iArr[10];
static int num = 10;

module_param(irq, int, 0644);
module_param(cPtr, charp, 0);
module_param_array(iArr, int, &num, 0644);
MODULE_PARM_DESC(irq, "module used interrupt num __test");

static int __init moduleparam_init(void)
{
    int i;
    printk("irq=%d\n", irq);
    printk("cPtr=%s\n", cPtr);

    for (i = 0; i < num; i++)
    {
        printk("iArr[%d] = %d\n", i, iArr[i]);
    }
    return 0;
}

static void __exit moduleparam_exit(void)
{
    int i;
    printk("irq=%d\n", irq);
    printk("cPtr=%s\n", cPtr);

    for (i = 0; i < num; i++)
    {
        printk("iArr[%d] = %d\n", i, iArr[i]);
    }
}

module_init(moduleparam_init);
module_exit(moduleparam_exit);

MODULE_LICENSE("GPL");